package com.szrt.mybatis.utils;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SqlSessionFactoryUtil {
	
	
	
	/**
	 * 保证工厂唯一
	 */
	private static SqlSessionFactory factory = null;
	
	static{
		try {
			//1  找到总的配置文件  mybatisConfig.xml
			Reader reader = Resources.getResourceAsReader("mybatisConfig.xml");
			
			//通过工厂模式生成  byd 全世界只有一个
			SqlSessionFactoryBuilder factoryBuilder = new SqlSessionFactoryBuilder();
			
			factory = factoryBuilder.build(reader);
		} catch (IOException e) {
			System.out.println("配置文件错误...");
			e.printStackTrace();
		}
		
	}

	public static SqlSessionFactory getFactory() {
		return factory;
	}
	
	
	public static SqlSession getSqlSession(){
		//2由工厂new一个SqlSession 还是看是否需要打开事务  如果是查询 就不需要事务 。其他的都需要
		SqlSession session = factory.openSession();
		return session;
	}

	
	
	
	
	

}
